package interpreteur.action;

import interpreteur.*;

public class TantQue extends Foncteur {

    private final Foncteur pPredicat;
    private final Foncteur pAction;
    private final Foncteur pActionBoucle;

    public TantQue(Foncteur pPredicat, Foncteur pAction, Foncteur pActionBoucle) {
        this.pPredicat = pPredicat;
        this.pAction = pAction;
        this.pActionBoucle = pActionBoucle;
    }

    public Result eval() {
        while (((Result) pPredicat.eval()).booleanResult) {
            pAction.eval();
            pActionBoucle.eval();
        }
        return Result.NULL;
    }

//    @Override
//    public String toString() {
//        super.toString();
//        String ret = "TantQue :" + pPredicat.toString() +
//                ":" + '\n' + pAction.toString() +
//                "," + pActionBoucle.toString();
//        return ret;
//    }
}
